Il est important de ne pas crer de noms de variables qui pourraient rentrer en conflit avec des instructions de Python.

Il est donc fortement dconseill (mme si c'est possible et que Python ne vous empchera pas de le faire) de crer une variable print = 5 par exemple.

La mme rgle s'applique aux modules !

Dans les prochaines parties, je vous prsente plusieurs modules, comme le module random.

Plusieurs tudiants ont donc crs un fichier random.py pour tester ce module.

Ce faisant, vous allez craser le module random de Python !

Quand vous allez faire import random, Python importera votre fichier au lieu du fichier random.py qui est contenu dans les sources de Python.

Vous aurez donc logiquement une erreur qui vous indique que les fonctions que vous souhaitez utiliser n'existent pas :

Traceback (most recent call last):
  File "/Users/thibh/Documents/random.py", line 1, in <module>
    import random
  File "/Users/thibh/Documents/random.py", line 3, in <module>
    nombre = random.randint(1, 5)
AttributeError: module 'random' has no attribute 'randint'

L'erreur module 'random' has no attribute 'randint' signifie que Python n'a pas trouv la fonction randint l'intrieur du module random, ce qui est normal puisque je l'ai cras en crant le fichier random.py.

Faites donc bien attention cela.

Bien entendu, en tant que dbutant, vous ne pouvez pas connatre le nom de tous les modules.

Il se peut donc que vous criez par inadvertance un fichier qui a le mme nom qu'un module Python existant.

Restez attentif donc l'erreur ci-dessus en cas de problme.

Pour vous aider, voici une liste (non-exhaustive) des principaux modules de la librairie standard de Python.

Ce sont donc autant de noms qu'il faut viter :

abc
aifc
argparse
array
ast
asynchat
asyncio
asyncore
atexit
audioop
base64
bdb
binascii
binhex
bisect
builtins
bz2
calendar
cgi
cgitb
chunk
cmath
cmd
code
codecs
codeop
colorsys
compileall
configparser
contextlib
contextvars
copy
copyreg
crypt
csv
ctypes
dataclasses
datetime
decimal
difflib
dis
distutils
doctest
dummy_threading
email
encodings
ensurepip
enum
errno
faulthandler
fcntl
filecmp
fileinput
fnmatch
formatter
fractions
ftplib
functools
gc
getopt
getpass
gettext
glob
grp
gzip
hashlib
heapq
hmac
html
http
imaplib
imghdr
imp
importlib
inspect
io
ipaddress
itertools
json
keyword
lib2to3
linecache
locale
logging
lzma
mailbox
mailcap
marshal
math
mimetypes
mmap
modulefinder
msilib
msvcrt
multiprocessing
netrc
nis
nntplib
numbers
operator
optparse
os
ossaudiodev
parser
pathlib
pdb
pickle
pickletools
pipes
pkgutil
platform
plistlib
poplib
posix
pprint
profile
pstats
pty
pwd
py_compile
pyclbr
pydoc
queue
quopri
random
re
readline
reprlib
resource
rlcompleter
runpy
sched
secrets
select
selectors
shelve
shlex
shutil
signal
site
smtpd
smtplib
sndhdr
socket
socketserver
spwd
sqlite3
ssl
stat
statistics
string
stringprep
struct
subprocess
sunau
symbol
symtable
sys
sysconfig
syslog
tabnanny
tarfile
telnetlib
tempfile
termios
test
textwrap
threading
time
timeit
tkinter
token
tokenize
trace
traceback
tracemalloc
tty
turtle
turtledemo
types
typing
unicodedata
unittest
urllib
uu
uuid
venv
warnings
wave
weakref
webbrowser
winreg
winsound
wsgiref
xdrlib
xml
xmlrpc
zipapp
zipfile
zipimport
zlib